﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MGI.Logica
{
    /// <summary>
    /// fabrica de controladores para la logica
    /// </summary>
    public class LogicaFactory
    {
        #region Singleton
        /// <summary>
        /// implementación de singleton para la fabrica de controladores
        /// </summary>
        static private LogicaFactory _instance;

        /// <summary>
        /// implementación de singleton para la fabrica de controladores
        /// retorna una instancia de la fabrica
        /// </summary>
        /// <returns>LogicaFactory </returns>
        static public LogicaFactory GetInstance()
        {
            if (_instance == null)
            {
                _instance = new LogicaFactory();
            }
            return _instance;
        }

        #endregion


        /// <summary>
        /// retorna un controlador de Clientes y Sistemas
        /// </summary>
        /// <returns>IClientesSistemas</returns>
        public IClientesSistemas GetIClientesSistemas()
        {
            return new CtrClientesSistemas();
        }

        /// <summary>
        /// retorna un controlador de Incidentes
        /// </summary>
        /// <returns>IIncidentes</returns>
        public IIncidentes GetIIncidentes()
        {
            return new CtrIncidentes();
        }

        /// <summary>
        /// retorna un controlador de Usuarios
        /// </summary>
        /// <returns>IUsuarios</returns>
        public IUsuarios GetIUsuarios()
        {
            return new CtrUsuarios();
        }
    }
}
